#ifndef LIRENOMCOMP_H
#define LIRENOMCOMP_H 1

#include <iostream>
#include <string>
#include <vector>

// pour unary_function
#include <functional>

#include "ListComp.h"

/**
 * Foncteur permettant de retrouver le nom d'une compétence à partir
 * du conteneur Comp_classe d'une Classe.
 *
 * Est utilisé en confonction avec un transform, pour obtenir un
 * conteneur de noms à partir d'un conteneur d'indices.
 *
 * @author Johan "Solo" Luisier
 */
class LireNomComp : std::unary_function<unsigned int, std::string>
{
 public:
  LireNomComp( const std::vector< ListComp >* ls = 0 );
  ~LireNomComp();
  std::string operator()( const unsigned int& i ) const;
  void setComp( const std::vector< ListComp >* ls );
 private:
  /**
   * Pointeur sur le conteneur des compétences de Classe.
   */
  const std::vector< ListComp > *lsComp;
};

#endif // LIRENOMCOMP_H
